Storage units are equipped with a large number of storage devices for storing data, and a storage controller for controlling the storage devices, and the object thereof is to provide a large capacity of data storage space to a computer.
Heretofore, HDDs (Hard Disk Drives) are installed as storage devices, but recently, storage devices (such as SSDs: Solid State Drives) having nonvolatile semiconductor memories (such as FMs: Flash Memories) are attracting attention as new storage media that can be used in replacement of HDDs.
Generally, many SSDs are equipped with a plurality of NAND type FM chips, and the FM chips perform reading and writing of data in units called pages. Since the FM cannot directly overwrite the data stored in a page, data must be erased once to store new data. Erasing of data is executed to a group of pages called a block. Further, a group of blocks called a die is constructed within the FM. There is an upper limit in the number of times that a block can be erased. In other words, the FM has a life, and the SSD including the large number of FMs also has a life. For example, if the FM reaches its end of life, reading and writing of data may not be performed correctly. If data cannot be read correctly, the SSD will be in a state where stored data is lost.
Further, the quality of the FMs may be dispersed in units of dies and chips. If the quality of the die is not good, failure may occur by the die reaching its life even before the number of erase counts reaches a predetermined target count, and the die becomes unusable. For example, SSD provides a storage capacity (hereinafter called logical capacity) to the user. However, if failure occurs to a part of the FM chips and the capacity cannot be maintained, the SSD will be blocked even if there are other FM chips having high quality and are in a usable state.
As described, if the SSD becomes unusable earlier than the predetermined period of time, the frequency of replacement increases, requiring costs for additional purchase or maintenance of SSDs, which may lead to the increase of TCO. Further, if the whole SSD is blocked when failure occurs to only a part of the FM chips, the large number of remaining usable FM chips will be wasted.
Patent Literature 1 discloses a technique in which a storage controller utilizes a capacity virtualization function to continuously use an SSD where failure has occurred to the FM chip without blocking the SSD.
A capacity virtualization function is a technique of providing a virtual capacity greater than a physical capacity of a storage unit as virtual volume to a host computer. In capacity virtualization, at first, a plurality of storage devices in the storage unit are gathered to create a pool, and storage areas in the pool are managed in units called chunks having a predetermined size. Then, in response to a write request from the host computer to the virtual volume, the storage unit allocates a chunk to the area in the virtual volume designated by the write request. In the capacity virtualization function, the storage controller can present a virtual capacity to the host, such that even if the logical capacity of the SSD is changed by capacity reduction processing, the storage controller can maintain a fixed size of the virtual capacity presented to the host, and the influence of the change can be hidden.
Thus, the storage controller can continue operation while reducing the logical capacity of the SSD in which failure has occurred to the FM, such that all the FM chips installed in the SSD can be used fully. In the present specification, a processing of reducing the logical capacity of an SSD is called “capacity reduction processing”.